﻿//using System;
//using System.Collections.Generic;
//using System.Linq;
//using System.Text;
//using UnityEngine;
//using Modding;


//class MapperWindow : SafeUIBehaviour
//{
//    public override bool ShouldShowGUI { get; set; } = false;

//    public Dictionary<int, Type> dic = JoystickBlockController.Instance.dic_EnhancementBlock;

//    public EnhancementBlock EB;

//    public bool isGet = false;

//    private BlockBehaviour lastBlock = null;
//    public override void SafeAwake()
//    {
//        windowRect = new Rect(50f, 100f, 356f, 288f);
//        windowName = "JoystickMapper Window";
//    }

//    void Update()
//    {
       

//        if (!BlockMapper.IsOpen)
//        {
//            ShouldShowGUI = isGet = false;
//            return;
//        };

//        var block = BlockMapper.CurrentInstance.Block;


//        if (isGet && (block == lastBlock))
//        {         
//            if (EB != null)
//            {
//                if (EB.EnhancementEnabled)
//                {
//                    ShouldShowGUI = !StatMaster.levelSimulating && IsBuilding() && !StatMaster.inMenu;
//                }
//                else
//                {
//                    ShouldShowGUI = isGet = false;
//                }
//            }
//            return;
//        }
             
//        //BlockBehaviour blockbehaviour = block.BuildingBlock;
//        if (block.MapperTypes.Exists(match => match.Key == "Joystick"))
//        {
//            if (dic.ContainsKey(block.BlockID))
//            {
//                var EB = dic[block.BlockID];

//                if (block.GetComponent(EB) != null)
//                {
//                    this.EB = block.gameObject.GetComponent(EB) as EnhancementBlock;
//                    lastBlock = block;
//                    isGet = true;
//                    return;
//                }
//            }
//        }

//        ShouldShowGUI = isGet = false;
//    }

//    protected override void WindowContent(int windowID)
//    {

//        GUILayout.BeginHorizontal();
//        {
//            EB.sign = Tool.BoolToFloat(GUILayout.Toggle(Tool. FloatToBool(EB.sign), "Flip"));
//        }
//        GUILayout.EndHorizontal();

//        GUILayout.BeginVertical();
//        {
//            if (GUILayout.Button(JoyAxis.LeftHorizontalAxis.ToString()))
//            {
//                if (EB!=null)
//                {
//                    EB.axis = JoyAxis.LeftHorizontalAxis;
//                }
//            }
//            if (GUILayout.Button(JoyAxis.LeftVerticalAxis.ToString()))
//            {
//                //if (BlockMapper.CurrentInstance != null && BlockMapper.IsOpen)
//                //{
//                //    var block = BlockMapper.CurrentInstance.Block;
//                //    if (block.name.ToLower() == "piston" && block.GetComponent<PistonScript>() != null)
//                //    {
//                //        block.GetComponent<PistonScript>().axis = JoyAxis.LeftVerticalAxis;
//                //    }
//                //}
//                if (EB != null)
//                {
//                    EB.axis = JoyAxis.LeftVerticalAxis;
//                }
//            }
//            if (GUILayout.Button(JoyAxis.MiddleAxis.ToString()))
//            {
//                //if (BlockMapper.CurrentInstance != null && BlockMapper.IsOpen)
//                //{
//                //    var block = BlockMapper.CurrentInstance.Block;
//                //    if (block.name.ToLower() == "piston" && block.GetComponent<PistonScript>() != null)
//                //    {
//                //        block.GetComponent<PistonScript>().axis = JoyAxis.MiddleAxis;
//                //    }
//                //}
//                if (EB != null)
//                {
//                    EB.axis = JoyAxis.MiddleAxis;
//                }
//            }
//            if (GUILayout.Button(JoyAxis.RightHorizontalAxis.ToString()))
//            {
//                //if (BlockMapper.CurrentInstance != null && BlockMapper.IsOpen)
//                //{
//                //    var block = BlockMapper.CurrentInstance.Block;
//                //    if (block.name.ToLower() == "piston" && block.GetComponent<PistonScript>() != null)
//                //    {
//                //        block.GetComponent<PistonScript>().axis = JoyAxis.RightHorizontalAxis;
//                //    }
//                //}
//                if (EB != null)
//                {
//                    EB.axis = JoyAxis.RightHorizontalAxis;
//                }
//            }
//            if (GUILayout.Button(JoyAxis.RightVerticlAxis.ToString()))
//            {
//                //if (BlockMapper.CurrentInstance != null && BlockMapper.IsOpen)
//                //{
//                //    var block = BlockMapper.CurrentInstance.Block;
//                //    if (block.name.ToLower() == "piston" && block.GetComponent<PistonScript>() != null)
//                //    {
//                //        block.GetComponent<PistonScript>().axis = JoyAxis.RightVerticlAxis;
//                //    }
//                //}
//                if (EB != null)
//                {
//                    EB.axis = JoyAxis.RightVerticlAxis;
//                }
//            }
//        }
//        GUILayout.EndVertical();

//        GUI.DragWindow();
//    }
//}



